Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Flash memory devices typically use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption. Common uses for flash memory include personal computers, flash drives, digital cameras, and cellular telephones. Program code and system data such as a basic input/output system (BIOS) are typically stored in flash memory devices for use in personal computer systems.
A typical flash memory device is a type of memory in which the array of memory cells is typically organized into memory blocks that can be erased and reprogrammed on block-by-block basis instead of one byte at a time. Changes in a threshold voltage of each of the memory cells, through erasing or programming of a charge storage structure (e.g., floating gate or charge trap) or other physical phenomena (e.g., phase change or polarization), determine the data value of each cell. The data in a cell of this type is determined by the presence or absence of the charge in the charge storage structure.
A programming operation typically comprises a series of incrementally increasing programming pulses that are applied to a control gate of a memory cell being programmed. A program verify operation after each programming pulse can determine the threshold voltage of the memory cell resulting from the preceding programming pulse.
The program verify operation can comprise applying a ramped voltage signal on the control gate of the memory cell being programmed. When the ramped voltage signal reaches the threshold voltage to which the memory cell has been programmed, the memory cell turns on and sense circuitry detects a current on a data line (e.g., bit line) coupled to the memory cell.
The ramped voltage signal for each program verify operation covers the entire Vt voltage range for the memory cell. For example, if an erased threshold voltage for the memory cell can go as low as −3V and a programmed threshold voltage as high as 5V, the ramped voltage signal will start at −3V and increase to 5V. Thus, each programming operation includes the programming pulse time plus the time to generate the entire program verify ramped voltage signal. Performing such a programming operation on each memory cell of a memory block can use a large amount of time and create a performance bottleneck in a memory system.
For the reasons stated above, and for other reasons that will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for a more efficient programming operation.